package com.wdb.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import org.apache.commons.configuration.*;


/**
 * @author: wendaobai@qq.com
 * @date: 2024/9/24 星期二 14:16
 */
public class ColUtil {
    private static final Logger log = LoggerFactory.getLogger(ColUtil.class);

    /**
     * 转换MySQL数据类型为Java数据类型
     *
     * 通过查询配置对象，将给定的数据库字段类型（MySQL）映射到对应的Java类型
     * 如果给定的数据库字段类型无法识别，则返回"unknowType"
     *
     * @param type 数据库字段类型，表示在MySQL中的数据类型，例如varchar、int等
     * @return String 表示Java数据类型的字符串，例如String、Integer等
     */
    static String cloToJava(String type) {
        // 获取配置对象，该对象包含数据库类型到Java类型映射信息
        Configuration config = getConfig();
        // log.info("config--{}",type);
        // 确保配置对象不为null，因为后续操作依赖于该对象
        assert config != null;
        // 返回与数据库字段类型对应的Java类型，如果找不到则返回"unknowType"
        return config.getString(type, "unknowType");
    }


    /**
     * 获取配置信息
     * 从指定的属性文件中加载配置信息，如果无法加载，则返回null
     *
     * @return PropertiesConfiguration 加载的配置信息，如果无法加载则为null
     */
    public static PropertiesConfiguration getConfig() {
        try {
            // 创建并返回属性配置对象，指定属性文件为"generator.properties"
            return new PropertiesConfiguration("generator.properties");
        } catch (ConfigurationException e) {
            // 记录异常信息，用于调试和排查问题
            log.error(e.getMessage(), e);
        }
        // 如果属性文件无法加载，返回null
        return null;
    }

}
